gusucode.com > GUI界面实现语音增强matlab源码程序 > speech enhancement/last1.m
wave_serial=wavread('4ks31.wav'); figure(1); plot(wave_serial); b=fir1(10,1/8); s=filter(b,1,wave_serial); E=zeros(1,2000); N=2000; for i=1:N E(i)=abs(s(i)); end figure(2); plot(E); M1=E(1); X=0; for i=1:N if E(i)>M1 M1=E(i); X=i; end end X1=X+400; s1=s(X:X1); N1=200; r=zeros(1,200); for i=1:N1 for j=1:N1 r(i)=r(i)+abs(s1(j)-s1(i+j)); end end figure(3); plot(r); M2=r(1); for i=1:N1 if r(i)>M2 M2=r(i); end end if M2>16 M2=M2/3-1; else M2=M2/2; end Y=zeros(1,20); B=zeros(1,20); j=0; for i=2:(N1-1) if r(i-1)>r(i) & r(i)<r(i+1) & r(i) <M2 j=j+1; Y(j)=i; B(j)=r(i); end end if j==0 M1=0.03; for i=0:N if E(N-i)>M1 X=N-i; break end end X1=X-800; X2=X-400; s1=s(X1:X2); N1=200; r=zeros(1,200); for i=1:N1 for j=1:N1 r(i)=r(i)+abs(s1(j)-s1(i+j)); end end figure(3); plot(r); M2=r(1); for i=1:N1 if r(i)>M2 M2=r(i); end end if M2>16 M2=M2/2-3; else M2=M2/2; end Y=zeros(1,20); B=zeros(1,20); j=0; for i=2:(N1-1) if r(i-1)>r(i) & r(i)<r(i+1) & r(i) <M2 j=j+1; Y(j)=i; B(j)=r(i); end end end Z=zeros(1,20); Z=Y; sign=0; for i=2:j if (Z(i)-Z(i-1))>50 sign=1; end if (Z(i)-Z(i-1))<13 sign=1; end end N_keynote=Y(1); j=j-1; if sign==1 F=Y(1); Q=4000/N_keynote; else for i=1:j N_keynote=N_keynote+abs(Y(i+1)-Y(i)); end j=j+1; F=N_keynote/j; Q=j*4000/N_keynote; end res='0'; if F<=20 res='F'; else res='M'; end Y B M2 res F X Q j sign